package com.road.config;

import org.aeonbits.owner.Config;

/**
 * @Description :基于owner实现的配置文件类，功能强大https://github.com/lviggiano/owner
 * @FileName: AppConfig.java
 * @Author :WeiHui.Zhang
 * @Data : 2016年2月4日 上午10:50:56
 * @Version:V1.00
 */
@Config.Sources(value = "classpath:CastleServerConfig.properties")
public interface AppConfig extends Config {

	/**
	 * 可以通过env参数实现不同开发环境的隔离
	 */
	@Key("env")
	@DefaultValue("dev")
	String env();

	@Key("${env}.plot.path")
	String plotPath();
	
	@Key("${env}.npcchat.path")
	String npcPath();
	
	@Key("${env}.version.path")
	String versionPath();
	
	@Key("${env}.language.path")
	String languagePath();
	
	@Key("${env}.cross.path")
	String crossPath();
	
	@Key("${env}.global.path")
	String globalPath();
	
	@Key("${env}.log4j.path")
	String log4jPath();
	
	@Key("${env}.serverRecord.path")
	String serverRecordPath();
	
	@Key("server.id")
	int serverId();
	
	@Key("server.type")
	int serverType();
	
	@Key("${env}.order.path")
	String orderPath();
	
	@Key("mysql.maxconn")
	@DefaultValue("10")
	int maxConn();

	@Key("mysql.fallow")
	@DefaultValue("1")
	int fallow();

	@Key("log.maxconn")
	@DefaultValue("10")
	int logMaxconn();

	@Key("log.fallow")
	@DefaultValue("1")
	int logfallow();

}
